package com.zw.a.basic.a04.demo02_arry;

//案例: 演示数组的常见操作之: 反转数组.
//即: 原始元素为: 11, 33, 22, 55, 44.,      反转后为: 44, 55, 22, 33, 11
public class ArrayDemo04 {
    public static void main(String[] args) {
        //1.定义int类型的数组, 存储数据: 11, 33, 22, 55, 44.
        int[] arr = {11, 33, 22, 55, 44};
        //2.反转数组, 并打印反转后的结果.
        /*
            核心点:
                1. 谁和谁交换.
                    arr[i]  和 arr[arr.length -1 - i]交换
                2. 交换次数是多少?
                    arr.length / 2
            分析:  例如: 反转11, 33, 22, 55, 44
                第一次反转: 11 和 44交换, 即: arr[0]  和  arr[arr.length -1 - 0],   交换后结果为: 44, 33, 22, 55, 11
                第二次反转: 33 和 55交换, 即: arr[1]  和  arr[arr.length -1 - 1],   交换后结果为: 44, 55, 22, 33, 11
                ...
                结论:       arr[i]  和 arr[arr.length -1 - i]交换
         */

        //2.1 定义循环, 表示交换次数.
        for (int i = 0; i < arr.length / 2; i++) {
            //2.2 arr[i]  和 arr[arr.length -1 - i]交换
            int temp = arr[i];
            arr[i] = arr[arr.length -1 - i];
            arr[arr.length -1 - i] = temp;
        }

        //3. 遍历数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
